home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / gnome-doc-utils / gnome-doc-utils.make next >
Encoding:
Text File  |  2010-04-28  |  22.5 KB  |  656 lines

  1. # gnome-doc-utils.make - make magic for building documentation
  2. # Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org>
  3. #
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program; if not, write to the Free Software Foundation,
  16. # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17. #
  18. # As a special exception to the GNU General Public License, if you
  19. # distribute this file as part of a program that contains a
  20. # configuration script generated by Autoconf, you may include it under
  21. # the same distribution terms that you use for the rest of that program.
  22.  
  23. ################################################################################
  24. ## @@ Generating Header Files
  25.  
  26. ## @ DOC_H_FILE
  27. ## The name of the header file to generate
  28. DOC_H_FILE ?=
  29.  
  30. ## @ DOC_H_DOCS
  31. ## The input DocBook files for generating the header file
  32. DOC_H_DOCS ?=
  33.  
  34. $(DOC_H_FILE): $(DOC_H_DOCS);
  35.     @rm -f $@.tmp; touch $@.tmp;
  36.     echo 'const gchar* documentation_credits[] = {' >> $@.tmp
  37.     list='$(DOC_H_DOCS)'; for doc in $$list; do \
  38.       xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
  39.       if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
  40.       xsltproc --path "$$xmlpath" $(_credits) $$doc; \
  41.     done | sort | uniq \
  42.       | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
  43.       | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
  44.     echo '    NULL' >> $@.tmp
  45.     echo '};' >> $@.tmp
  46.     echo >> $@.tmp
  47.     list='$(DOC_H_DOCS)'; for doc in $$list; do \
  48.       xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
  49.       if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
  50.       docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
  51.         | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
  52.       echo $$xmlpath; \
  53.       ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
  54.       for id in $$ids; do \
  55.         echo '#define HELP_'`echo $$docid`'_'`echo $$id \
  56.           | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
  57.       done; \
  58.       echo >> $@.tmp; \
  59.     done;
  60.     cp $@.tmp $@ && rm -f $@.tmp
  61.  
  62. dist-check-gdu:
  63. if !HAVE_GNOME_DOC_UTILS
  64.     @echo "*** GNOME Doc Utils must be installed in order to make dist"
  65.     @false
  66. endif
  67.  
  68. .PHONY: dist-doc-header
  69. dist-doc-header: $(DOC_H_FILE)
  70.     @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
  71.     echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
  72.     $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
  73.  
  74. doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
  75.  
  76. .PHONY: clean-doc-header
  77. _clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
  78. clean-local: $(_clean_doc_header)
  79. distclean-local: $(_clean_doc_header)
  80. mostlyclean-local: $(_clean_doc_header)
  81. maintainer-clean-local: $(_clean_doc_header)
  82. clean-doc-header:
  83.     rm -f $(DOC_H_FILE)
  84.  
  85. all: $(DOC_H_FILE)
  86.  
  87.  
  88. ################################################################################
  89. ## @@ Generating Documentation Files
  90.  
  91. ## @ DOC_MODULE
  92. ## The name of the document being built
  93. DOC_MODULE ?=
  94.  
  95. ## @ DOC_ID
  96. ## The unique identifier for a Mallard document
  97. DOC_ID ?=
  98.  
  99. ## @ DOC_PAGES
  100. ## Page files in a Mallard document
  101. DOC_PAGES ?=
  102.  
  103. ## @ DOC_ENTITIES
  104. ## Files included with a SYSTEM entity
  105. DOC_ENTITIES ?=
  106.  
  107. ## @ DOC_INCLUDES
  108. ## Files included with XInclude
  109. DOC_INCLUDES ?=
  110.  
  111. ## @ DOC_FIGURES
  112. ## Figures and other external data
  113. DOC_FIGURES ?=
  114.  
  115. ## @ DOC_FORMATS
  116. ## The default formats to be built and installed
  117. DOC_FORMATS ?= docbook
  118. _DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
  119.  
  120. ## @ DOC_LINGUAS
  121. ## The languages this document is translated into
  122. DOC_LINGUAS ?=
  123. _DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),        \
  124.     $(filter $(LINGUAS),$(DOC_LINGUAS)),                    \
  125.     $(DOC_LINGUAS))
  126.  
  127. _DOC_ABS_SRCDIR = @abs_srcdir@
  128.  
  129.  
  130. ################################################################################
  131. ## Variables for Bootstrapping
  132.  
  133. _xml2po ?= `which xml2po`
  134. _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
  135.  
  136. _db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
  137. _db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
  138. _malrng  ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils`
  139. _chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
  140. _credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
  141. _ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
  142.  
  143. if ENABLE_SK
  144. _ENABLE_SK = true
  145. _skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
  146. _sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
  147. _skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
  148. endif
  149.  
  150.  
  151. ################################################################################
  152. ## @@ Rules for OMF Files
  153.  
  154. db2omf_args =                                    \
  155.     --stringparam db2omf.basename $(DOC_MODULE)                \
  156.     --stringparam db2omf.format $(3)                    \
  157.     --stringparam db2omf.dtd                        \
  158.     $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1         \
  159.         | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/')            \
  160.     --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2)))    \
  161.     --stringparam db2omf.omf_dir "$(OMF_DIR)"                \
  162.     --stringparam db2omf.help_dir "$(HELP_DIR)"                \
  163.     --stringparam db2omf.omf_in "$(_DOC_OMF_IN)"                \
  164.     $(if $(_ENABLE_SK),                            \
  165.       --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)")        \
  166.     $(_db2omf) $(2)
  167.  
  168. ## @ _DOC_OMF_IN
  169. ## The OMF input file
  170. _DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
  171.  
  172. ## @ _DOC_OMF_DB
  173. ## The OMF files for DocBook output
  174. _DOC_OMF_DB = $(if $(_DOC_OMF_IN),                        \
  175.     $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
  176.  
  177. $(_DOC_OMF_DB) : $(_DOC_OMF_IN)
  178. $(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
  179.     @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {    \
  180.       echo "The file '$(_skcontentslist)' does not exist." >&2;        \
  181.       echo "Please check your ScrollKeeper installation." >&2;        \
  182.       exit 1; }
  183.     xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
  184.  
  185. ## @ _DOC_OMF_HTML
  186. ## The OMF files for HTML output
  187. _DOC_OMF_HTML = $(if $(_DOC_OMF_IN),                        \
  188.     $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
  189.  
  190. $(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
  191. $(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
  192. if ENABLE_SK
  193.     @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {    \
  194.       echo "The file '$(_skcontentslist)' does not exist" >&2;        \
  195.       echo "Please check your ScrollKeeper installation." >&2;        \
  196.       exit 1; }
  197. endif
  198.     xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
  199.  
  200. ## @ _DOC_OMF_ALL
  201. ## All OMF output files to be built
  202. # FIXME
  203. _DOC_OMF_ALL =                                    \
  204.     $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB))        \
  205.     $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
  206.  
  207. .PHONY: omf
  208. omf: $(_DOC_OMF_ALL)
  209.  
  210.  
  211. ################################################################################
  212. ## @@ C Locale Documents
  213.  
  214. ## @ _DOC_C_MODULE
  215. ## The top-level documentation file in the C locale
  216. _DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
  217.  
  218. ## @ _DOC_C_PAGES
  219. ## Page files in a Mallard document in the C locale
  220. _DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page))
  221.  
  222. ## @ _DOC_C_ENTITIES
  223. ## Files included with a SYSTEM entity in the C locale
  224. _DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
  225.  
  226. ## @ _DOC_C_XINCLUDES
  227. ## Files included with XInclude in the C locale
  228. _DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
  229.  
  230. ## @ _DOC_C_DOCS
  231. ## All documentation files in the C locale
  232. _DOC_C_DOCS =                                \
  233.     $(_DOC_C_ENTITIES)    $(_DOC_C_INCLUDES)            \
  234.     $(_DOC_C_PAGES)        $(_DOC_C_MODULE)
  235.  
  236. ## @ _DOC_C_DOCS_NOENT
  237. ## All documentation files in the C locale,
  238. ## except files included with a SYSTEM entity
  239. _DOC_C_DOCS_NOENT =                            \
  240.     $(_DOC_C_MODULE)    $(_DOC_C_INCLUDES)            \
  241.     $(_DOC_C_PAGES)
  242.  
  243. ## @ _DOC_C_FIGURES
  244. ## All figures and other external data in the C locale
  245. _DOC_C_FIGURES = $(if $(DOC_FIGURES),                    \
  246.     $(foreach fig,$(DOC_FIGURES),C/$(fig)),                \
  247.     $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
  248.  
  249. ## @ _DOC_C_HTML
  250. ## All HTML documentation in the C locale
  251. # FIXME: probably have to shell escape to determine the file names
  252. _DOC_C_HTML = $(foreach f,                        \
  253.     $(shell xsltproc --xinclude                     \
  254.       --stringparam db.chunk.basename "$(DOC_MODULE)"        \
  255.       $(_chunks) "C/$(DOC_MODULE).xml"),                \
  256.     C/$(f).xhtml)
  257.  
  258. ###############################################################################
  259. ## @@ Other Locale Documentation
  260.  
  261. ## @ _DOC_POFILES
  262. ## The .po files used for translating the document
  263. _DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID),                    \
  264.     $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
  265.  
  266. .PHONY: po
  267. po: $(_DOC_POFILES)
  268.  
  269. ## @ _DOC_MOFILES
  270. ## The .mo files used for translating the document
  271. _DOC_MOFILES = $(patsubst %.po,%.mo,$(_DOC_POFILES))
  272.  
  273. .PHONY: mo
  274. mo: $(_DOC_MOFILES)
  275.  
  276. ## @ _DOC_LC_MODULES
  277. ## The top-level documentation files in all other locales
  278. _DOC_LC_MODULES = $(if $(DOC_MODULE),                        \
  279.     $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
  280.  
  281. ## @ _DOC_LC_PAGES
  282. ## Page files in a Mallard document in all other locales
  283. _DOC_LC_PAGES =                                    \
  284.     $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES),    \
  285.         $(lc)/$(notdir $(page)) ))
  286.  
  287. ## @ _DOC_LC_XINCLUDES
  288. ## Files included with XInclude in all other locales
  289. _DOC_LC_INCLUDES =                                \
  290.     $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES),    \
  291.         $(lc)/$(notdir $(inc)) ))
  292.  
  293. ## @ _DOC_LC_HTML
  294. ## All HTML documentation in all other locales
  295. # FIXME: probably have to shell escape to determine the file names
  296. _DOC_LC_HTML =                                    \
  297.     $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML),        \
  298.         $(lc)/$(notdir $(doc)) ))
  299.  
  300. ## @ _DOC_LC_DOCS
  301. ## All documentation files in all other locales
  302. _DOC_LC_DOCS =                                    \
  303.     $(_DOC_LC_MODULES)    $(_DOC_LC_INCLUDES)    $(_DOC_LC_PAGES)    \
  304.     $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
  305.  
  306. ## @ _DOC_LC_FIGURES
  307. ## All figures and other external data in all other locales
  308. _DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS),                \
  309.     $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
  310.  
  311. _DOC_SRC_FIGURES =                                \
  312.     $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),    \
  313.         $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
  314.  
  315. $(_DOC_POFILES):
  316.     @if ! test -d $(dir $@); then \
  317.       echo "mkdir $(dir $@)"; \
  318.       mkdir "$(dir $@)"; \
  319.     fi
  320.     @if test ! -f $@ -a -f $(srcdir)/$@; then \
  321.       echo "cp $(srcdir)/$@ $@"; \
  322.       cp "$(srcdir)/$@" "$@"; \
  323.     fi;
  324.     @docs=; \
  325.     list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
  326.       docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
  327.     done; \
  328.     if ! test -f $@; then \
  329.       echo "(cd $(dir $@) && \
  330.         $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
  331.         cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
  332.       (cd $(dir $@) && \
  333.         $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \
  334.         cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
  335.     else \
  336.       echo "(cd $(dir $@) && \
  337.         $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \
  338.       (cd $(dir $@) && \
  339.         $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \
  340.     fi
  341.  
  342. $(_DOC_MOFILES): %.mo: %.po
  343.     @if ! test -d $(dir $@); then \
  344.       echo "mkdir $(dir $@)"; \
  345.       mkdir "$(dir $@)"; \
  346.     fi
  347.     msgfmt -o $@ $<
  348.  
  349. # FIXME: fix the dependancy
  350. # FIXME: hook xml2po up
  351. $(_DOC_LC_DOCS) : $(_DOC_MOFILES)
  352. $(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
  353.     if ! test -d $(dir $@); then mkdir $(dir $@); fi
  354.     if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
  355.     mo="$(dir $@)$(patsubst %/$(notdir $@),%,$@).mo"; \
  356.     if [ -f "$${mo}" ]; then mo="../$${mo}"; else mo="$(_DOC_ABS_SRCDIR)/$${mo}"; fi; \
  357.     (cd $(dir $@) && \
  358.       $(_xml2po) -m $(_xml2po_mode) -e -t "$${mo}" \
  359.         "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
  360.         cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
  361.  
  362. ## @ _DOC_POT
  363. ## A pot file
  364. _DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
  365. .PHONY: pot
  366. pot: $(_DOC_POT)
  367. $(_DOC_POT): $(_DOC_C_DOCS_NOENT)
  368.     $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^
  369.  
  370.  
  371. ################################################################################
  372. ## @@ All Documentation
  373.  
  374. ## @ _DOC_HTML_ALL
  375. ## All HTML documentation, only if it's built
  376. _DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
  377.     $(_DOC_C_HTML) $(_DOC_LC_HTML))
  378.  
  379. _DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
  380.  
  381. $(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
  382.     xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
  383.  
  384.  
  385. ################################################################################
  386. ## All
  387.  
  388. all:                            \
  389.     $(_DOC_C_DOCS)        $(_DOC_LC_DOCS)        \
  390.     $(_DOC_OMF_ALL)        $(_DOC_DSK_ALL)        \
  391.     $(_DOC_HTML_ALL)    $(_DOC_POFILES)
  392.  
  393.  
  394. ################################################################################
  395. ## Clean
  396.  
  397. .PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
  398.  
  399. clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
  400. clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
  401. clean-doc-lc:
  402.     rm -f $(_DOC_LC_DOCS)
  403.     rm -f $(_DOC_MOFILES)
  404.     @list='$(_DOC_POFILES)'; for po in $$list; do \
  405.       if ! test "$$po" -ef "$(srcdir)/$$po"; then \
  406.         echo "rm -f $$po"; \
  407.         rm -f "$$po"; \
  408.       fi; \
  409.     done
  410. #    .xml2.po.mo cleaning is obsolete as of 0.18.1 and could be removed in 0.20.x
  411.     @for lc in C $(_DOC_REAL_LINGUAS); do \
  412.       if test -f "$$lc/.xml2po.mo"; then \
  413.         echo "rm -f $$lc/.xml2po.mo"; \
  414.         rm -f "$$lc/.xml2po.mo"; \
  415.       fi; \
  416.     done
  417. clean-doc-dir: clean-doc-lc
  418.     @for lc in C $(_DOC_REAL_LINGUAS); do \
  419.       for dir in `find $$lc -depth -type d`; do \
  420.         if ! test $$dir -ef $(srcdir)/$$dir; then \
  421.           echo "rmdir $$dir"; \
  422.           rmdir "$$dir"; \
  423.        fi; \
  424.       done; \
  425.     done
  426.  
  427. _clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
  428. _clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
  429. _clean_lc  = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
  430. _clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir)
  431.  
  432. clean-local:                        \
  433.     $(_clean_omf)        $(_clean_dsk)        \
  434.     $(_clean_lc)        $(_clean_dir)
  435. distclean-local:                    \
  436.     $(_clean_omf)        $(_clean_dsk)        \
  437.     $(_clean_lc)        $(_clean_dir)
  438. mostlyclean-local:                    \
  439.     $(_clean_omf)        $(_clean_dsk)        \
  440.     $(_clean_lc)        $(_clean_dir)
  441. maintainer-clean-local:                    \
  442.     $(_clean_omf)        $(_clean_dsk)        \
  443.     $(_clean_lc)        $(_clean_dir)
  444.  
  445.  
  446.  
  447. ################################################################################
  448. ## Dist
  449.  
  450. .PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk
  451. doc-dist-hook:                         \
  452.     $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs)    \
  453.     $(if $(_DOC_C_FIGURES),dist-doc-figs)        \
  454.     $(if $(_DOC_OMF_IN),dist-doc-omf)
  455. #    $(if $(_DOC_DSK_IN),dist-doc-dsk)
  456.  
  457. dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
  458.     @for lc in C $(_DOC_REAL_LINGUAS); do \
  459.       echo " $(mkinstalldirs) $(distdir)/$$lc"; \
  460.       $(mkinstalldirs) "$(distdir)/$$lc"; \
  461.     done
  462.     @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
  463.     for doc in $$list; do \
  464.       if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
  465.         docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
  466.         if ! test -d "$(distdir)/$$docdir"; then \
  467.           echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
  468.           $(mkinstalldirs) "$(distdir)/$$docdir"; \
  469.         fi; \
  470.       echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
  471.       $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
  472.     done
  473.  
  474. dist-doc-figs: $(_DOC_SRC_FIGURES)
  475.     @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
  476.     for fig in $$list; do \
  477.       if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
  478.       if test -f "$$d$$fig"; then \
  479.         figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
  480.         if ! test -d "$(distdir)/$$figdir"; then \
  481.           echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
  482.           $(mkinstalldirs) "$(distdir)/$$figdir"; \
  483.         fi; \
  484.         echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
  485.         $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
  486.       fi; \
  487.     done;
  488.  
  489. dist-doc-omf:
  490.     @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
  491.     echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
  492.     $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
  493.  
  494. dist-doc-dsk:
  495.     @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
  496.     echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
  497.     $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
  498.  
  499.  
  500.  
  501. ################################################################################
  502. ## Check
  503.  
  504. .PHONY: check-doc-docs check-doc-omf
  505. check:                            \
  506.     $(if $(DOC_MODULE),check-doc-docs)        \
  507.     $(if $(DOC_ID),check-doc-pages)            \
  508.     $(if $(_DOC_OMF_IN),check-doc-omf)
  509.  
  510. check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
  511.     @for lc in C $(_DOC_REAL_LINGUAS); do \
  512.       if test -f "$$lc"; \
  513.         then d=; \
  514.         xmlpath="$$lc"; \
  515.       else \
  516.         d="$(srcdir)/"; \
  517.         xmlpath="$$lc:$(srcdir)/$$lc"; \
  518.       fi; \
  519.       echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
  520.       xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
  521.     done
  522.  
  523. check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES)
  524.     for lc in C $(_DOC_REAL_LINGUAS); do \
  525.       if test -f "$$lc"; \
  526.         then d=; \
  527.         xmlpath="$$lc"; \
  528.       else \
  529.         d="$(srcdir)/"; \
  530.         xmlpath="$$lc:$(srcdir)/$$lc"; \
  531.       fi; \
  532.       for page in $(DOC_PAGES); do \
  533.         echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \
  534.         xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \
  535.       done; \
  536.     done
  537.  
  538. check-doc-omf: $(_DOC_OMF_ALL)
  539.     @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
  540.       echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
  541.       xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
  542.     done
  543.  
  544.  
  545.  
  546. ################################################################################
  547. ## Install
  548.  
  549. .PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
  550.  
  551. _doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE))
  552.  
  553. install-data-local:                    \
  554.     $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs)    \
  555.     $(if $(_DOC_HTML_ALL),install-doc-html)        \
  556.     $(if $(_DOC_C_FIGURES),install-doc-figs)    \
  557.     $(if $(_DOC_OMF_IN),install-doc-omf)
  558. #    $(if $(_DOC_DSK_IN),install-doc-dsk)
  559.  
  560. install-doc-docs:
  561.     @for lc in C $(_DOC_REAL_LINGUAS); do \
  562.       echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \
  563.       $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \
  564.     done
  565.     @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
  566.       if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
  567.       docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
  568.       docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \
  569.       if ! test -d "$$docdir"; then \
  570.         echo "$(mkinstalldirs) $$docdir"; \
  571.         $(mkinstalldirs) "$$docdir"; \
  572.       fi; \
  573.       echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
  574.       $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \
  575.     done
  576.  
  577. install-doc-figs:
  578.     @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
  579.       for lc in C $(_DOC_REAL_LINGUAS); do \
  580.         figsymlink=false; \
  581.         if test -f "$$lc/$$fig"; then \
  582.           figfile="$$lc/$$fig"; \
  583.         elif test -f "$(srcdir)/$$lc/$$fig"; then \
  584.           figfile="$(srcdir)/$$lc/$$fig"; \
  585.         else \
  586.           figsymlink=true; \
  587.         fi; \
  588.         figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
  589.         figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \
  590.         if ! test -d "$$figdir"; then \
  591.           echo "$(mkinstalldirs) $$figdir"; \
  592.           $(mkinstalldirs) "$$figdir"; \
  593.         fi; \
  594.         figbase=`echo $$fig | sed -e 's/^.*\///'`; \
  595.         if $$figsymlink; then \
  596.           echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
  597.           ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
  598.         else \
  599.           echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
  600.           $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
  601.         fi; \
  602.       done; \
  603.     done
  604.  
  605. install-doc-html:
  606.     echo install-html
  607.  
  608. install-doc-omf:
  609.     $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)
  610.     @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
  611.       echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
  612.       $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \
  613.     done
  614.     @if test "x$(_ENABLE_SK)" = "xtrue"; then \
  615.       echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
  616.       scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \
  617.     fi;
  618.  
  619. install-doc-dsk:
  620.     echo install-dsk
  621.  
  622.  
  623.  
  624. ################################################################################
  625. ## Uninstall
  626.  
  627. .PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
  628. uninstall-local:                    \
  629.     $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs)    \
  630.     $(if $(_DOC_HTML_ALL),uninstall-doc-html)    \
  631.     $(if $(_DOC_C_FIGURES),uninstall-doc-figs)    \
  632.     $(if $(_DOC_OMF_IN),uninstall-doc-omf)
  633. #    $(if $(_DOC_DSK_IN),uninstall-doc-dsk)
  634.  
  635. uninstall-doc-docs:
  636.     @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
  637.       echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
  638.       rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \
  639.     done
  640.  
  641. uninstall-doc-figs:
  642.     @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
  643.       echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
  644.       rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \
  645.     done;
  646.  
  647. uninstall-doc-omf:
  648.     @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
  649.       if test "x$(_ENABLE_SK)" = "xtrue"; then \
  650.         echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
  651.         scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
  652.       fi; \
  653.       echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
  654.       rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \
  655.     done
  656.